function test1(){
    for(var i =0;i<5;++i){
        setTimeout(()=>{
            console.log('indexs is :',i);
        },1000)
    }
}
test1();

function box2() {
    var arr = [];
    for (var i = 0; i < 5; i++) {
        arr[i] = (function(num) { //自我执行，并传参(将匿名函数形成一个表达式)(传递一个参数)
            return num; //这里的num写什么都可以                   
        })(i); //这时候这个括号里面的i和上面arr[i]的值是一样的都是取自for循环里面的i                           
    }
    return arr;
}
console.log(box2());     //[ 0, 1, 2, 3, 4 ]
function box4() {
    var arr = [];
    for (var i = 0; i < 5; i++) {
        arr[i] = (function(num) { //自我执行，并传参(将匿名函数形成一个表达式)(传递一个参数),在这个闭包里面再写一个匿名函数
            return function() {
                return num;
            }
        })(i); //这时候这个括号里面的i和上面arr[i]的值是一样的都是取自for循环里面的i                     
    }
    return arr;
}
console.log(box4());   //[ [Function], [Function], [Function], [Function], [Function] ]